package com.piesat.quake.business.device.model.config;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.piesat.quake.business.device.mqtt.anno.IgnoreField;
import com.piesat.quake.business.device.mqtt.anno.LengthField;

import java.io.Serializable;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 *
 * </p>
 *
 * @author ${author}
 * @since 2023-03-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("d_threshold_data")
public class ThresholdData implements Serializable {

    private static final long serialVersionUID = 1L;

    @IgnoreField
    @TableId(value = "id", type = IdType.INPUT)
    private String id;

    //数据块长度	Int	4B	对于 3 事件检测模式与阈值调整的数据块，整个数据块的长度；
    @TableField(exist = false)
    @LengthField
    private int length;
    //事件检测模式	Byte	1B	1表示阈值触发方式（二进制1）； 2表示STA/LTA比值法触发方式（二进制10）；
    // ...（可扩展） 多种触发方式并用则数值相加；
    @TableField("event_check_mode")
    private Byte eventCheckMode;
    //STA时间窗采样点数	Int	4B	STA时间窗的总采样点数；
    @TableField("sta_count")
    private Integer staCount;
    //LTA时间窗采样点数	Int	4B	LTA时间窗的总采样点数；
    @TableField("lta_count")
    private Integer ltaCount;
    //STA/LTA比值阈值	Float	4B	STA/LTA比值超过该阈值，判断为发生地震；
    @TableField("sta_lta_threshold")
    private Float staLtaThreshold;
    //4级地震烈度阈值	Float	4B	超过该阈值，判断为发生四级或以上地震；
    @TableField("level4_threshold")
    private Float level4Threshold;
    //5级地震烈度阈值	Float	4B	超过该阈值，判断为发生五级或以上地震；
    @TableField("level5_threshold")
    private Float level5Threshold;
    //6级地震烈度阈值	Float	4B	超过该阈值，判断为发生六级或以上地震；
    @TableField("level6_threshold")
    private Float level6Threshold;
    //7级地震烈度阈值	Float	4B	超过该阈值，判断为发生七级或以上地震；
    @TableField("level7_threshold")
    private Float level7Threshold;
    //8级地震烈度阈值	Float	4B	超过该阈值，判断为发生八级或以上地震；
    @TableField("level8_threshold")
    private Float level8Threshold;
    //9级地震烈度阈值	Float	4B	超过该阈值，判断为发生九级或以上地震；
    @TableField("level9_threshold")
    private Float level9Threshold;
}
